﻿using Cysharp.Threading.Tasks;

namespace DataCenterSystem
{
    public interface IMemoryCache
    {
        ICacheEncoder Encoder { get; }
        ICacheDecoder Decoder { get; }
        
        UniTask<bool> AddOrUpdateCache(string key, byte[] data);
        UniTask<MemoryCacheResult> GetCache(string key);
        UniTask<bool> ContainsKey(string key);
        UniTask<bool> HasCache(string key);
        UniTask<bool> ContainsCache(string key, byte[] data);
        
        UniTask<bool> Delete(string key);
        UniTask<bool> Clear();

    }
}